
(defparameter *top-goals*
	(freqlist-to-problist '( ;; converts the numbers to probs
		((top-goal ?loc) . 1)
	))
)

(make-domain 'monroe '(
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Top level schedule
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; Top goal
	(:method (top-goal ?loc)
		normal
		()
		(
			(initialize)
			(oneday)
		)
	)
;;; Oneday
	(:method (oneday)
		normal
		()
		((update-counter))
	)
;;; day-of-week counter
	(:method (update-counter)
		((isday monday))
		((!update-day monday tuesday))
	)
	(:method (update-counter)
		((isday tuesday))
		((!update-day tuesday wednesday))
	)
	(:method (update-counter)
		((isday wednesday))
		((!update-day wednesday thursday))
	)
	(:method (update-counter)
		((isday thursday))
		((!update-day thursday friday))
	)
	(:method (update-counter)
		((isday friday))
		((!update-day friday saturday))
	)
	(:method (update-counter)
		((isday saturday))
		((!update-day saturday sunday))
	)
	(:method (update-counter)
		((isday sunday))
		((!update-day sunday monday))
	)
	(:operator (!update-day ?from ?to)
		()
		((isday ?from))
		((isday ?to))
	)
	(:method (update-counter)
		((not (initialized)))
		((!init-counter))
	)
	;; Initialization code
	(:method (initialize)
		((initialized))
		()
	)
	(:method (initialize)
		((not (initialized)))
		(
			(!init-counter)
		)
	)
	(:operator (!init-counter)
		()
		()
		((initialized) (isday monday))
	)
))
